package main

import (
	"net"
	"net/rpc"
	"net/rpc/jsonrpc"
)

type HelloRPC struct{}

func (h *HelloRPC) Hello(request string, resp *string) error {
	*resp = "hello, " + request
	return nil
}

func main() {
	// 实例化一个服务
	listen, _ := net.Listen("tcp", ":8080")
	// 注册 handler
	rpc.RegisterName("HelloService", &HelloRPC{})
	// 启动服务
	for {
		conn, _ := listen.Accept()
		// 服务器接收json格式的请求格式，方便多语言进行分布式开发和调用服务器上的方法
		rpc.ServeCodec(jsonrpc.NewServerCodec(conn))
		// rpc.ServeConn(conn)
	}
}
